package com.sc.study.exam.service.impl;

import java.util.List;

import com.sc.study.exam.service.IScTestexamService;
import com.sc.system.service.ISysUserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.sc.study.exam.mapper.ScTestMapper;
import com.sc.study.exam.domain.ScTest;
import com.sc.study.exam.service.IScTestService;

/**
 * 试卷管理Service业务层处理
 * 
 * @author sc
 * @date 2022-03-29
 */
@Service
public class ScTestServiceImpl implements IScTestService 
{
    @Autowired
    private ScTestMapper scTestMapper;

    @Autowired
    private ISysUserService sysUserService;

    @Autowired
    private IScTestexamService testexamService;

    /**
     * 查询试卷管理
     * 
     * @param id 试卷管理主键
     * @return 试卷管理
     */
    @Override
    public ScTest selectScTestById(Long id)
    {
        return scTestMapper.selectScTestById(id);
    }

    /**
     * 查询试卷管理列表
     * 
     * @param scTest 试卷管理
     * @return 试卷管理
     */
    @Override
    public List<ScTest> selectScTestList(ScTest scTest)
    {
        List<ScTest> list = scTestMapper.selectScTestList(scTest);

        list.forEach(item -> {
            //设置用户名
            item.setSysUser(sysUserService.selectUserById(item.getUserid()));
            //设置是否可修改
            item.setUpdateIs(testexamService.selectByTestId(Integer.valueOf(item.getId().toString())) == null ? true : false);
        });

        return list;
    }

    /**
     * 新增试卷管理
     * 
     * @param scTest 试卷管理
     * @return 结果
     */
    @Override
    public int insertScTest(ScTest scTest)
    {
        return scTestMapper.insertScTest(scTest);
    }

    /**
     * 修改试卷管理
     * 
     * @param scTest 试卷管理
     * @return 结果
     */
    @Override
    public int updateScTest(ScTest scTest)
    {
        return scTestMapper.updateScTest(scTest);
    }

    /**
     * 批量删除试卷管理
     * 
     * @param ids 需要删除的试卷管理主键
     * @return 结果
     */
    @Override
    public int deleteScTestByIds(Long[] ids)
    {
        return scTestMapper.deleteScTestByIds(ids);
    }

    /**
     * 删除试卷管理信息
     * 
     * @param id 试卷管理主键
     * @return 结果
     */
    @Override
    public int deleteScTestById(Long id)
    {
        return scTestMapper.deleteScTestById(id);
    }

    /**
     * 查询所有的试卷
     * @return
     */
    @Override
    public List<ScTest> selectAll(){
        return scTestMapper.selectAll();
    }
}
